<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    #container {
        width: 300px;
        height: 400px;
        border: 1px solid #666;
    }

    .title {
        text-align: center;
        border-bottom: 1px solid #666;
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .display {
        width: 100%;
        height: 150px;
        border-bottom: 1px solid #666;
    }

    /* 
    .opcontainer {
        /* margin-top: 50px;
    } */

    li {
        list-style-type: none;
    }

    .tabs {
        height: 39px;
        border: 1px solid #ccc;
        background-color: #f1f1f1;
        text-align: center;
    }

    .tabs li {
        float: left;
        height: 20px;
        line-height: 20px;
        padding: 0 10px;
        text-align: center;
        cursor: pointer;
    }

    .tabs .current {
        background-color: #c81623;
        color: #fff;
    }

    .item_info {
        padding: 20px 0 0 20px;
    }

    .item {
        display: none;
    }
</style>

<body>
    <div id="container">
        <div class="title">开发银行柜员机</div>
        <div class="tabs">
            <ul>
                <li class="current">账户</li>
                <li>账单</li>
                <li>转账</li>
            </ul>
        </div>
        <!-- 显示界面1 -->
        <div class="display op">
            <ul>
                <li>输入密码：******</li>
                <li>登入成功</li>
                <li>余额为：￥<span id="opTips">1000000</span></li>
            </ul>
        </div>
        <!-- 显示界面2 -->
        <div class="display" style="display: none;">
            <ul id="logContent">
                <li>存入1000000元</li>
            </ul>
        </div>
        <!-- 显示界面3 -->
        <div class="display" style="display: none;">
        </div>
        <div class="opcontainer">
            <div>请输入操作金额</div>
            <input type="text" name="amountInput">
            <input id="deposit" type="button" value="存入">
            <input id="withdraw" type="button" value="取出">
        </div>
    </div>

</body>
<script>
    var opTips = document.querySelector('#opTips')
    var amountInput = document.getElementsByName('amountInput')[0]
    // 为id为**deposit**的按钮绑定单击事件，触发按钮事件后，会弹出存入多少元的提示
    //获取事件源
    function depositFun() {
        alert("存入" + amountInput.value + "元")
        // 当存入事件触发时修改显示屏上显示的金额(id为：**opTips**的元素)
        //操作后金额=当前金额+存入金额
        opTips.innerHTML = Number(opTips.innerHTML) + Number(amountInput.value)
        addLog(1, amountInput.value);
    }
    function withdrawFun() {
        // 当取出金额时 判断金额是否足够取出，如不够取出则把显示屏上的金额的背景色改为红色并且提示无法取出。
        if (Number(opTips.innerHTML) < Number(amountInput.value)) {
            // 显示屏上的金额的背景色改为红色
            opTips.style.backgroundColor = "red"
            alert("余额不足")
            return;
        }
        alert("取出" + amountInput.value + "元")
        // 当存入事件触发时修改显示屏上显示的金额(id为：**opTips**的元素)
        //操作后金额=当前金额+存入金额
        opTips.innerHTML = Number(opTips.innerHTML) - Number(amountInput.value)
        addLog(2, amountInput.value);
    }
    var deposit = document.querySelector('#deposit')
    deposit.onclick = depositFun;
    // 为id为**withdraw**的按钮绑定单击事件，触发按钮事件后，会弹出存入多少元的提示
    var withdraw = document.querySelector('#withdraw')
    withdraw.onclick = withdrawFun;
    //当金额输入框失去焦点时(事件：onblur )需要判断金额是否为数字（isNaN()方法判断是否为数字 返回ture为非数字 false为数字）并且大于0，如不符合要求的话作出提示
    amountInput.onblur = function () {
        //判断文本框内容是否为数字
        if (isNaN(amountInput.value)) {
            amountInput.value = "";
            alert("请输入数字")
            return;
        }
    }

    // 实训七开始---------------------------------------------------------------------------------------
    // 实训7.1 完成效果：点击（账户/账单/转账）标签的时候会改变当前点击的标签为红色
    // 思路
    // 1.找到所有元素
    var tabs = document.querySelector('.tabs')

    // console.log(tabs.childNodes) //可以获取到文本节点
    // console.log(tabs.children[0])//不可以获取到文本节点
    // console.log(tabs.firstChild)//可以获取到文本节点
    // console.log(tabs.firstElementChild)//不可以获取到文本节点

    var firstLi = tabs.firstElementChild.firstElementChild;
    console.log(firstLi.nextElementSibling.previousElementSibling)//第一个li

    var li = tabs.querySelectorAll('li')
    // 获取所有
    var display = document.querySelectorAll('.display')
    console.log(li)
    // 2.给所有的元素添加点击事件
    for (var i = 0; i < li.length; i++) {
        // 给li设置序号 方便在点击的时候 跟显示界面相匹配
        li[i].setAttribute('index', i)
        li[i].onclick = function () {

            console.log(this.parentNode)
            // 3.去除所有元素的效果 
            for (var j = 0; j < li.length; j++) {
                li[j].setAttribute('class', '');
            }
            // 4.给当前元素添加效果
            this.setAttribute('class', 'current')
            // console.log(this.getAttribute('index'))

            // 把所有界面隐藏
            for (var x = 0; x < display.length; x++) {
                display[x].style.display = "none"
            }
            // 根据序号把显示界面显示
            display[this.getAttribute('index')].style.display = ""
        }
    }


    // 实训7.2 完成效果：点击（账户/账单/转账）标签的时候实现切换显示对应的界面
    // 思路 给上面的按钮和下面的界面添加联系 关系：顺序
    // 给li设置一个序号 通过点击的序号是多少 显示对应序号的div

    // 实训7.3 当我们取出或者存入金额的时候在账单记录界面后面增加一条记录（li）
    function addLog(type, amount) {
        var li = document.createElement("li")
        if (type == 1) {
            li.innerHTML = "存入" + amount + "<a href='javascript:;'>删除</a>";
        }
        else {
            li.innerHTML = "取出" + amount + "<a href='javascript:;'>删除</a>";
        }
        var ul = document.getElementById("logContent");
        ul.appendChild(li)

        var a = document.getElementsByTagName("a");
        for (var i = 0; i < a.length; i++) {
            a[i].onclick = function () {
                console.log(this.parentNode);
                ul.removeChild(this.parentNode)
            }
        }

    }
    // 实训7.4 在每条账单记录后面增加一个撤销按钮，点击删除当前记录

    // 实训7.5 添加键盘事件，在我们输入金额后按“+”存入，按“-”取出
    // 添加键盘事件
    document.addEventListener('keyup', function (e) {
        console.log(e)
        // + 存入
        if (e.keyCode == 107) {
            depositFun();
        }
        // - 取出
        else if (e.keyCode == 109) {
            withdrawFun();
        }
    });
</script>

</html>